package com.sdy.supermarket.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sdy.common.model.BizException;
import com.sdy.supermarket.biz.model.GsRes;
import com.sdy.supermarket.biz.model.GsUserRes;
import com.sdy.mvc.service.BaseService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zzq
 * @since 2019-07-24
 */
public interface GsUserResService extends BaseService<GsUserRes> {
    /**
     * 查询用户的资源
     *
     * @param userId 用户id
     */
    List<GsUserRes> listUserRes(Integer userId);

    List<GsUserRes> get7DaysList();

    /**
     * 给用户授予或取消某个资源的权限
     *
     * @param userId
     * @param resId
     * @return
     */
    int isApproveRes(Integer userId, Integer resId);

    /**
     * 一键授权&取消当前部门所有人员对该资源的权限
     *
     * @param deptId
     * @param resId
     * @param userName
     * @param type
     * @return
     */
    int oneKeyApproveRes(Integer deptId, Integer resId, String userName, Integer type) throws BizException;


    /**
     * 分配用户资源
     *
     * @param opUserId 操作用户
     * @param resId    资源id
     * @param userId   目标用户id
     */
    void applyRes(Integer opUserId, Integer resId, Integer userId) throws BizException, InterruptedException;


    /**
     * 分配用户资源
     *
     * @param resId  资源id
     * @param userId 目标用户id
     */
    void applyRes(Integer resId, Integer userId) throws BizException, InterruptedException;

    /**
     * 分页条件查询当前用户所拥有的资源列表
     *
     * @param page
     * @param resName
     * @param state
     * @param userId
     * @return
     */
    IPage<GsRes> getUserResList(Page<GsRes> page, Integer userId, String resName, Integer state);

    /**
     * 设置常用应用
     *
     * @param userId 用户id
     * @param resId  资源id
     * @param type   1-设置常用 0-取消常用
     */
    void setCommonRes(Integer userId, Integer resId, Integer type);
}
